/**
 * @projectName leetode
 * @package cn.leetcode
 * @className cn.leetcode.t111
 * @copyright Copyright 2020 Thunisoft, Inc All rights reserved.
 */
package cn.leetcode;

/**
 * t111
 * @description
 * @author fei
 * @date 2025/9/8 16:13
 * @version 1.0
 */
/*
给定一个二叉树，找出其最小深度。

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

说明：叶子节点是指没有子节点的节点。


示例 1：

输入：root = [3,9,20,null,null,15,7]
输出：2
示例 2：

输入：root = [2,null,3,null,4,null,5,null,6]
输出：5
 */
public class t111 {
    private int ans = Integer.MAX_VALUE;
    public int minDepth(TreeNode root) {
        if (root == null){
            return 0;
        }
        dfs(root, 0);
        return ans;
    }
    public void dfs(TreeNode root, int depth){
        if (root == null){
            return;
        }
        depth++;
        if (root.left == null && root.right == null){
            ans = Math.min(ans,depth);
        }
        dfs(root.left, depth);
        dfs(root.right, depth);
    }
}
